The present disclosure relates to data processing systems, and in particular, to the scheduling of jobs in data processing systems.
Data processing systems utilize scheduling engines to schedule execution of computer processes. Scheduling the execution of computer processes is often referred to as job management, which may involve scheduling a computer process to occur at one designated time, repeatedly at periodic times, or according to other time schedules. Numerous scheduling engines exist today, such as Unicenter CA-7, Unicenter CA-Scheduler, and Unicenter CA-Job track available from Computer Associates.
In a distributed computing platform that includes many different data processing devices, such as a multi-server cluster, job scheduling is an important task. Distributed computing platforms typically include software that allocates computing tasks across a group of computing devices, enabling large workloads to be processed in parallel.
Cloud computing/storage environments have become a popular choice for implementing data processing systems. In a cloud computing/storage environment, a cloud provider hosts hardware and related items and provides systems and computational power as a service to a customer, such as a business organization.
Cloud computing/storage environments may support virtual machines (VM), which are emulations of physical machines implemented in software, hardware, or combination of both software and hardware. In a cloud computing environment, jobs may be delegated to virtual machines. Virtual machine resources may be scheduled in a similar manner as physical machine resources. Thus, a distributed computing platform may consist of physical machines, virtual machines, or a collection of both physical and virtual machines.
Entities to which tasks, or jobs, are assigned by a scheduler are generally referred to as “agents” or “workload agents,” and may reside on physical machines and/or virtual machines.